import api from './index'

// MCP列表查询参数
export interface McpPageRequest {
  page: number
  pageSize: number
  sort?: string
  order?: 'asc' | 'desc'
  keyword?: string
}

// MCP信息
export interface McpInfo {
  ID: number
  CreatedAt: string
  UpdatedAt: string
  DeletedAt: string | null
  name: string
  describe: string
  type: number
  status: number
  cmd: string
  params: string
  env: string
}

// 创建MCP参数
export interface McpCreateDTO {
  name: string
  describe: string
  type: number
  status: number
  cmd: string
  params: string
  env: string
}

// API响应结构
export interface ApiResponse<T = any> {
  code: number
  msg: string
  data: T
}

// 分页响应
export interface PageResponse<T> {
  items: T[]
  total: number
  page: number
  pageSize: number
  totalPage: number
}

/**
 * 获取MCP列表
 * @param params 分页和搜索参数
 * @returns MCP列表分页数据
 */
export const getMcpList = (params: McpPageRequest) => {
  return api.get<PageResponse<McpInfo>>('/mcp/page', { params })
}

/**
 * 创建新MCP
 * @param data MCP信息
 * @returns 创建结果
 */
export const createMcp = (data: McpCreateDTO) => {
  return api.post('/mcp/add', data)
}

/**
 * 更新MCP
 * @param id MCP ID
 * @param data MCP信息
 * @returns 更新结果
 */
export const updateMcp = (id: number, data: McpCreateDTO) => {
  return api.post(`/mcp/update?id=${id}`, data)
}

/**
 * 获取MCP详情
 * @param id MCP ID
 * @returns MCP详情
 */
export const getMcpById = (id: number) => {
  return api.get(`/mcp/getById?id=${id}`)
}

/**
 * 删除MCP
 * @param id MCP ID
 * @returns 删除结果
 */
export const deleteMcp = (id: number) => {
  return api.delete(`/mcp/delete?id=${id}`)
} 